\documentclass[11pt,a4paper]{article}
%\usepackage{syntonly}
%\usepackage[T1]{fontenc}
%\syntaxonly
%\author{Kong}
\title{Software Requirement Specification}
\date{}
\pagestyle{headings}
\begin{document}
% generates the title
\maketitle
%			Software Requirement Specification\\

%Project Title    : Kh-Shell\\
%Team Title       : One-Man\\
%Group Members    : Kong\\
%Document Version : 1.0.0

% The docment statement table
%\flushright
%\begin{flushleft}
\begin{flushright}
\begin{tabular}{|l|l|}
\hline
Project Title & kh-shell\\
\hline
Team Title & One-Man\\
\hline
Group Members & Kong\\
\hline
Document Version & 1.0.1\\
\hline
%Date & \date{}\\
Date & 2009.04.23\\
\hline
\end{tabular}
\end{flushright}
\begin{verbatim}


\end{verbatim}

\flushleft
\begin{enumerate}
\item \textbf{Scope}

We need a lightweight and a little powerful shell.

\item \textbf{Intened Audience}

This document is meant for users, developers, project managers, testers, and documentation writers.

\item \textbf{User Classes}

The major user classes are expected to use this product are system adminstrators and programmers. Both of them are expected to have experience of Linux.

\item \textbf{Logic Requirements}

\begin{itemize}
\item Run on the console.\\
Once Shell executed, a prompt available.\\
%eg:\\
%-$>$\\ % >Cannot display correctly
%$\vec{a}$
%$\rightarrow$
\emph{eg:}
\begin{verbatim}
$kh-shell
usrname@kshell:-> 
\end{verbatim}
\emph{Shell already works.}
\item Quit nomally once a special event happens.\\
\emph{eg:}
\begin{verbatim}
usrname@kshell:-> exit
$ 
\end{verbatim}
\emph{Shell exits.\\When Shell exits, all sub-processes should be killed.}
\item Multi-job available.\\
\emph{eg:}
\begin{verbatim}
usrname@kshell:-> find / -iname "xlocale.h" &
job[1] <find / -iname "xlocale.h"> running background...
usrname@kshell:-> /usr/local/arm-apple-darwin/include/xlocale.h
job[1] <find / -iname "xlocale.h"> Done. 
usrname@kshell:->
\end{verbatim}
\emph{Command bg/fg can be used to schedule jobs between backgound and frontground.\\eg:\\}
\begin{verbatim}
usrname@kshell:-> find / -iname "xlocale.h" &
job[1] <find / -iname "xlocale.h"> running background...
usrname@kshell:-> /usr/local/arm-apple-darwin/include/xlocale.h
fg 1
job[1] <find / -iname "xlocale.h"> running frontground...
/usr/nclude/X11/Xlocale.h
/usr/include/xlocale.h
/home/kong/SDKs/MacOSX10.4u.sdk/usr/X11R6/include/X11/Xlocale.h
/home/kong/SDKs/MacOSX10.4u.sdk/usr/include/xlocale.h
usrname@kshell:->
\end{verbatim}
\emph{Jobs at background will write to stdout only if a new prompt shows up.\\}
\item Input redirection support.\\
\emph{eg:}
\begin{verbatim}
usrname@kshell:-> ls >/var/www/log 2>error.log
usrname@kshell:-> cat /var/www/log
------>2009/06/06 13:22:17<------
Update Node[1] failed!
------>end<-------
\end{verbatim}
\item Output redirection support.\\
\emph{eg:}
\begin{verbatim}
usrname@kshell:-> cat </var/www/log
------>2009/06/06 13:22:17<------
Update Node[1] failed!
------>end<-------
\end{verbatim}
\item Prompt convertible.\\
\emph{eg:}
\begin{verbatim}
usrname@kshell:-> chgpmt $ 
usrname@kshell:$ 
\end{verbatim}
\emph{Shell can remember the settings at the next startup.}
\end{itemize}

\item \textbf{Performance requirements}

\begin{itemize}
\item Robust enough.
\item Handling exceptions correctly.We are assuming that the users will not use Alahamora to download copyright
and pornographic material.
\item Performance on nomal Linux system.
\end{itemize}

\item \textbf {Software Requirement}

\begin{itemize}
\item Project developemnt should be guided by software enineering. Requirement Specifications, Detailed Design Document, Test Report, Final Report, User Manual reqired.
\item Code with gool readability.
\end{itemize}

\item \textbf{Operating Enviroment}

System likely Unix.

\item \textbf{User Documentation}

To assist the user in understanding the product better and to assist them in better utilization of the product and its features, we will be providing a user manual.

\item \textbf{Assumptions and Dependencies}

We are assuming that the users will have the basic Linux operating skill.
\end{enumerate}
\end{document}
